\documentclass[10pt]{article}
\usepackage[hyperref,UTF8,scheme=plain]{ctex}
\usepackage[left=5.00cm, right=3.00cm, top=5.00cm, bottom=5.00cm]{geometry}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{float} % 更好地控制图片位置
\usepackage{listings}
\usepackage{xcolor}
\usepackage{framed} % 可以用 \begin{shaded}，即背景色块
\definecolor{shadecolor}{rgb}{0.9,0.9,0.9}

\hypersetup{
    colorlinks = true,
    linkcolor= blue
}

\lstset{
	basicstyle=\footnotesize,
	numbers=left,
	breaklines,%自动换行
	frame=shadowbox,%加边框
	backgroundcolor = \color{red!30!green!30!blue!30},
	%背景色：蓝灰色
	language=C++, % 语言为 c++
	commentstyle=\color{red!80!green!80!blue!80},% 注释用蓝灰色字体标出
	keywordstyle=\color{blue!70} % 高亮部分用蓝色字体
}

\begin{document}

{\Huge \bfseries 2019年秋《计算物理》期末试题}\\

\vspace{1cm}

\section{单项选择题，每题3分，共10题，总分30分。}

\kaishu

(1)在寻找方程的根时，以下算法哪一个收敛速度最慢？\\
\indent
(A)二分法　(B)牛顿法　(C)割线法　(D)Stewenson方法\\

\noindent
(2)关于数值求导，以下哪个说法正确？\\
\indent
(A)使用数值差分，差分步长越小，求得导数误差越小。\\
\indent
(B)使用数值差分，因为舍入误差，差分步长越大，求得导数误差反而更小。\\
\indent
(C)使用Richardson外推法，可以完全消除误差。\\
\indent
(D)使用Richardson外推法，可以定制不同精度的结果，一般地说，精度要求越高，计算量越大。\\

\noindent
(3)以下哪种算法不是多项式插值算法？\\
\indent (A)拉格朗日插值公式。\\
\indent (B)牛顿插值公式。\\
\indent (C)Nevill外推法。\\
\indent (D)Stewenson方法。\\

\noindent
(4)以下哪一种数值积分公式精度最高？\\
\indent (A)梯形法\\
\indent (B)中值法\\
\indent (C)辛普生方法\\
\indent (D)5阶高斯-勒让德积分\\

\noindent
(5)关于c++并行工具，以下哪种说法是正确的？\\
\indent (A)openmp是共享内存式并行工具，不同进程之间相互独立，无法通讯。\\
\indent (B)openmp是分布内存式并行工具，不同进程拥有自己的内存。\\
\indent (C)openmp是分布内存式并行工具，不同进程之间可以发送讯息交流。\\
\indent (D)openmp是共享内存式并行工具，不同进程之间可以通过共享的变量进行协作。\\

\noindent
(6)关于线性方程组求解$A \vec{x} = \vec{b}$，以下哪种说法是正确的？\\
\indent (A)如果系数矩阵$A$是三对角阵，可以用追赶法，算法的时间复杂度为$O(n^2)$。\\
\indent (B)如果系数矩阵$A$是稀疏矩阵，那么高斯消元、LU分解等方法并不适合，可以考虑使用迭代法。\\
\indent (C)LU分解的算法复杂度是$O(n^2)$，比高斯消元法快。\\
\indent (D)如果系数矩阵$A$是上三角阵，可以用追赶法，算法的时间复杂度为$O(n)$。\\

\noindent
(7)关于矩阵对角化Jacobi算法，以下哪一个说法正确？\\
\indent (A)Jacobi算法不一定收敛。\\
\indent (B)Jacobi算法适用于稀疏矩阵对角化。\\
\indent (C)Jacobi算法每次迭代需要$O(n^2)$次操作，其中$n$为矩阵维数。\\
\indent (D)Jacobi算法一定会收敛，只是迭代次数可能达到$O(n^3)$量级。\\

\noindent
(8)Lanczos算法(可参考讲义)适于处理下面哪一种问题？\\
\indent (A)实数对称阵本征值问题 \\
\indent (B)三对角阵本征值问题\\
\indent (C)上三角阵本征值问题\\
\indent (D)大规模稀疏对称矩阵\\

\noindent
(9)关于差分法求解微分方程，以下说法错误的是？\\
\indent (A)可以求解一维波动方程，只要时间、空间步长足够小，就能得到方程的解。\\
\indent (B)可以求解一维薛定谔方程本征值问题，只需设置恰当的节点，通过差分法，将问题转化为矩阵本征值问题。\\
\indent (C)可以解决泊松方程和扩散方程。\\
\indent (D)可以求解一维波动方程，但是要注意，时间步长不能太小，否则可能导致解的不稳定性。\\

\noindent
(10)关于蒙特卡洛积分，以下说法错误的是？\\
\indent (A)如果被积函数在部分區域接近0，可以考虑重要抽样，在同等计算量的情况下，得到更高的精度。\\
\indent (B)做重要抽样时，如果所用的概率密度函数与被积函数成正比，则所有抽样值相同，方差为零。\\
\indent (C)蒙特卡洛积分精度对计算量(采样点数)的依赖关系为$O(n^{-1/2})$，对积分重数不依赖，这是这个方法的长处。\\
\indent (D)积分重数上升时，任何算法的计算量都会上升，蒙特卡洛方法也不例外。

\section{解答题，每题10分，共7题，总分70分}
2.1 请写一个gnuplot脚本，制作绳子上驻波的动图：
\begin{equation}
u(x,t) = \cos(2x) \cos(0.1*t),
\end{equation}
其中$u(x,t)$表示$x$处质点在时间$t$的位移，使用国际单位制。要求：
\begin{itemize}
\item[a.]动图纵向坐标范围是$[-1,1]$。
\item[b.]横向坐标范围是$[0,10]$。
\item[c.]时间范围是$0\sim 80$秒。
\end{itemize}

\vspace{0.3cm}


\noindent
2.2 请编写1维Ising模型代码，用周期性边界条件、100个原子模拟1维晶格。其哈密顿量为
\begin{equation}
H = - J \sum_{\{i,j\}} s^{(i)}_z s^{(j)}_z,
\end{equation}
其中$J$表征相邻原子相互作用，可以设为能量单位，即设为$1$，$\{i,j\}$表示相邻的两个原子。
请用Markov链+Metropolis模拟，计算平均每原子自旋第3分量$\langle s_z \rangle$与$kT/J$的关系，作图并给出结论：1维Ising模型存在相变吗？如果有，相变点为$kT/J = $？

\vspace{0.3cm}

\noindent
2.3 已知两个物理量$X, Y$之间的关系为$Y = k X + b$，现有十组实验数据
$(X,Y) = (1,3.2), (2,5.1), (3,6.3), (4, 7.01), (5, 7.05), (6, 8.5), (7, 9.2), (8, 10.8), (9, 12.1), (10, 13)$，
请用最小二乘法拟合出$k, b$的值。

\vspace{0.3cm}

\noindent
2.4 请任选一种数值方法，求解以下势井的基态能量，
\begin{equation}
V(x) = \left\{
\begin{aligned}
& x^2, ~~ 0<x<1, \\
& \infty, ~~ else.
\end{aligned}
\right.
\end{equation}
我们设定$\hbar = m = 1$，体系定态薛定谔方程为
\begin{equation}
- \frac{1}{2}\frac{d^2}{dx^2} \psi(x) + V(x) \psi(x) = E \psi(x).
\end{equation}

\noindent
2.5 请产生服从如下分布的离散随机数
\begin{equation}
P(x) = \left\{
\begin{aligned}
&0.5, ~~ x = 1,\\
&0.5, ~~ x = -1.
\end{aligned}
\right.
\end{equation}
进行10000次抽样，得到它们的平均值
\begin{equation}
\overline{x} = \frac{1}{10000} \sum^{10000}_{i=1} x_i,
\end{equation}
试验证：$\overline{x}$值大致服从正态分布$N(\mu = 0, \sigma^2 = 10^{-4})$。\\

\noindent
2.6 请任选一种方法，完成如下数值积分，并与解析解比较
\begin{equation}
I_f = \int^1_0 e^{2x} dx.
\end{equation}

\noindent
2.7 尝试用VMC方法，用试探波函数$\psi(x) = x e^{-\alpha x^2}$，求解1维势井基态：
\begin{equation}
V(x) = \left\{
\begin{aligned}
&x^2/2, ~~~ 0<x<\infty\\
&\infty, ~~ x<0
\end{aligned}
\right.
\end{equation}
薛定谔方程变为
\begin{equation}
(- \frac{d^2}{dx^2} + V(x) ) \psi = E \psi.
\end{equation}
理论解为
\begin{eqnarray}
E_{g.s.} &=& 1.5, \\
\psi_{g.s.} &\propto& x e^{-x^2/2}.
\end{eqnarray}

\end{document}